#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <string.h>

int id;
void p()
{
	struct sembuf sb[1]={0,-1,0};
	semop(id,sb,1);
}
void v()
{
	struct sembuf sb[1]={0,1,0};
	semop(id,sb,1);
}

void print(char  c)
{
	int i;
	for(i=0;i<10;i++){
		//p();
		printf("%c",c);
		fflush(stdout);
		//sleep(rand()%3);
		printf("%c",c);
		fflush(stdout);
		sleep(rand()%3);
		//v();
	}
}

union semun
{
	int val;
};

int main()
{
	srand(getpid());
	 id=semget(1,1,IPC_CREAT|0644);
	if(id==-1){
		perror("semget");
		exit(1);
	}
	
	union semun su;
	su.val=1;
	semctl(id,0,SETVAL,su);
	pid_t pid=fork();

	if(pid==0){
		print('A');
	}else{
		print('B');
	}
}








